package com.example.smartcity_poverty.kt

import com.example.smartcity_poverty.App
import java.util.regex.Pattern

/**
 *  ANDROID STUDIO -VERSION 4.0
 *  email: 2506789532@qq.com
 *  CodeAuthor： Ikun
 *
 *  explain: 测试
 **/


val content = """
    aaa
    <p class="ql-align-center"><br></p><p>       相对于短视频在日活、月活与用户时长占有等数据上的增长，长视频整体呈现出了下滑之势。
    数据显示，2020年9月，在线视频全行业月活已经从去年的9.26亿下降到8.45亿，渗透率同比下滑8.4%。</p>
    <p><strong>长视频为何下滑了？</strong></p>
    <p>        关于长视频为何竞争不过短视频？其背后的底层逻辑是什么？</p>
<img src="/prod-api/profile/upload/image/2021/05/17/03d47ae7-c5bb-4a84-ac34-afe607660c19.jpg"></p>
<p class="ql-align-center"><br></p><p>       相对于短视频在日活、月活与用户时长占有等数据上的增长，长视频整体呈现出了下滑之势。
数据显示，2020年9月，在线视频全行业月活已经从去年的9.26亿下降到8.45亿，渗透率同比下滑8.4%。</p>
<p><strong>长视频为何下滑了？</strong></p>
<p>        关于长视频为何竞争不过短视频？其背后的底层逻辑是什么？</p>
<p>        在笔者看来，一大重要因素在于算法，我们知道抖音的崛起本质就是依赖算法。抖音的用户时长中，算法分发占据超过80%的比例，所以抖音被认为是强推荐算法的产品。</p>
<p>        当算法机制已成为短视频平台抢夺用户时长的重要竞争力与标配之时，算法并没有被长视频平台列为当前的重要的平台竞争标配。</p>
<p>       相对于短视频产品通过算法对消费者进行内容精准投喂，长视频依然保持着传统货架型的消费方式，用户需要发挥自己的主观能动性去找内容，目前长视频主要有两种内容寻找模式，
其一是通过首页的类目导航与推荐，比如说按照类型、热度和评分来选择电影；其次是通过搜索。</p>
<p>       当然有观点认为，算法在短视频平台中能够发挥效用，但在长视频平台中却未必，理由是抖音快手一条短视频，
用户消费完成只要15秒，优酷一部电影，用户消费完成需要90~120分钟，电视剧的时长消耗就更大了。</p>
<img src="/prod-api/profile/upload/image/2021/05/17/03d47ae7-c5bb-4a84-ac34-afe607660c19.jpg"></p>
<p>也就是说，短视频可以在碎片化时间场景观看，因此有着更高频的交互与数据作为算法的燃料，而长视频并不适合碎片化的消费场景，用户若需要观看一部电视剧或者电影，需要空出一段特定的时间来观看。</p>
<p>从这个角度来看，短视频消费成本低，长视频消费的时间成本高。</p>
<p>       有人认为，不像短视频有着庞大的新增内容生产量，长视频影视剧数量有限，能精准推送给消费者的内容有限，无论是场景还是数据都有所欠缺，算法的必要性就弱。</p>
<p>       但笔者看来，数据量的多寡并非算法必要性弱的理由，更多是平台是否有引入算法的动机与理由。在笔者看来，长视频平台不引入算法机制的一个重要原因或在于算法推荐机制可能会影响会员营收。</p>
<p>我们知道，短视频平台大部分内容是免费，所以可以通过算法机制去针对性推荐用户偏好的内容，做大用户规模之后，主要依赖广告营收。</p>
<p>      而长视频平台上存在砸大钱购买的新影视作品与流量剧，它更在意付费的用户规模与比例。它需要将这部分内 容作为主打爆款，去吸引潜在的流量粉丝群体为之付费。</p>
<p>      因此，如果千人千面的推荐机制，就会导致这部分付费内容难以最大化、无差别的推送到潜在粉丝面前，会导致潜在的付费用户群体流失。</p><p>      但是当下越来越多的�

""".trimIndent()



fun main() {
    val httpIP = App.url
    val addServerAddress = addServerAddressToImgTags(content, httpIP)
    print(addServerAddress)
}

fun addServerAddressToImgTags(htmlContent: String, serverAddress: String): String {
    val imgRegex = "<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>"
    val pattern = Pattern.compile(imgRegex)
    val matcher = pattern.matcher(htmlContent)
    val updatedHtmlContent = StringBuffer()

    while (matcher.find()) {
        val src = matcher.group(1)
        val updatedSrc = if (!src.startsWith("http")) {
            "$serverAddress$src"
        } else {
            src
        }
        matcher.appendReplacement(updatedHtmlContent, "<img src=\"$updatedSrc\">")
    }

    matcher.appendTail(updatedHtmlContent)

    return updatedHtmlContent.toString()
}










